package com.dszq.wemedia.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dszq.model.channel.dtos.ChannelDTO;
import com.dszq.model.common.dtos.ResponseResult;
import com.dszq.model.wemedia.pojos.WmChannel;
import com.dszq.wemedia.mapper.WmChannelMapper;

import java.util.List;

public interface WmChannelService extends IService<WmChannel> {
    /**
     * 查找所有数据的方法。
     * 
     * @return ResponseResult 返回操作的结果，其中包含查询到的所有数据。
     */
    ResponseResult findAll();
    /**
     * 通过POST请求保存频道信息。
     *
     * @param wmChannel 频道信息对象，包含要保存的所有频道属性。
     * @return 返回操作结果，包括操作是否成功、错误信息等。
     */
    ResponseResult insert(WmChannel wmChannel);
    /**
     * 根据频道名称和分页信息，查询频道列表。
     *
     * @param channelDTO 频道数据传输对象，包含频道名称和分页信息。
     * @return 返回频道列表的响应结果。
     */
    ResponseResult listByNameAndPage(ChannelDTO channelDTO);
    /**
     * 更新频道信息。
     *
     * @param wmChannel 接收前端传来的频道信息对象，包含频道的详细数据。
     * @return 返回操作结果，成功或失败。
     */
    ResponseResult updateChannel(WmChannel wmChannel);
    /**
     * 通过频道ID删除记录
     * 只有禁用的频道才能删除
     * @param channelId 频道ID，路径变量
     * @return 返回操作结果，包括成功与否、错误码等信息
     */
    ResponseResult deleteById(Integer channelId);
    /**
     * 查询所有频道信息
     *
     * @return ResponseResult 返回频道信息的查询结果，封装了状态码和数据
     */
    List<WmChannel> findAllChannels();
}
